public delegate void CallBack();
public delegate void CallBack<T> (T val1);
public delegate void CallBack<T, X>(T val1, X val2);
public delegate void CallBack<T, X, Y>(T val1, X val2, Y val3);
public delegate void CallBack<T, X, Y, Z>(T val1, X val2, Y val3, Z val4);
